﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace FigureDraw.Graphic
{
    public abstract class CommonGraphic
    {
        abstract public void DrawLine(MyPoint startPoint, MyPoint endPoint, MyColorInfo strokeColor, double strokeWidth);
        abstract public void DrawRectangle(MyPoint position, MyPoint size, MyColorInfo strokeColor, double strokeWidth, MyColorInfo brushColor);
        abstract public void DrawRoundedRectangle(MyPoint position, MyPoint size, MyColorInfo strokeColor, double strokeWidth, MyColorInfo brushColor);
        abstract public void DrawPolygon(MyColorInfo strokeColor, double strokeWidth, MyColorInfo brushColor, params MyPoint []points);
        abstract public void DrawEllipse(MyPoint position, MyPoint size, MyColorInfo strokeColor, double strokeWidth, MyColorInfo brushColor);
        abstract public void DrawText(MyPoint Position, string text, double size, MyColorInfo strokeColor);
        abstract public void DrawCurve(MyColorInfo strokeColor, double strokeWidth, params MyPoint []points);
        
        virtual public void DrawPicture(List<MyShape> shapes)
        {
            foreach (var shape in shapes)
                shape.Draw(this);
        }
    }
}
